跳到主要内容

使用CDN加快网站访问速度

CDN

最近有部署网站的需求,尝试过了一些方案,如:

1. 使用Vercel部署前端页面+使用AWS EC2部署后端接口。 #

Vercel在中国大陆压根无法访问,为了能让不用魔法的用户访问,我用到了Cloudflare作为我网站的DNS提供商,这样流量会被Cloudflare进行代理。

总结:可行,慢,免费。

2. 使用AWS EC2部署前端页面和后端接口。 #

新用户注册AWS时,会被赠予一年的免费使用,本以为EC2的香港服务器会很快,但实测延迟也要150ms左右,并且AWS免费的EC2配置很差,2核1G,美西俄勒冈的只有1核1G。

总结:可行,慢,免费。

3. 阿里云ECS部署前端+后端。 #

直接总结:可行,快,麻烦(需要备案),丑(备案号加到底部),99元一年。

4. 阿里云香港轻量应用服务器(类似ECS)部署前端+后端。 #

香港的服务器部署应用是不需要备案的,并且和大陆有专线,访问较快,但还不够快,ping值通常在40-60ms之间。

总结:可行,较快,简单,较贵,34元每月(2核2G 30M带宽,也有24元2核1G版本)。

我最终选择了方案4。但由于还是不满足阿里云香港的速度,我想到了使用CDN加速的方法。

我一通搜索加实现,一切部署完成,ping值大概在个位数到20ms之间。最终给网站们也都成功加速了,不过在过程中没有留意到阿里云CDN控制台里面的一句话,在创建CDN添加域名时明确写着:

加速区域含中国内地时,加速域名必须备案。

???这不就完犊子了么,又给我绕回来了是吧,我大概只能把CDN全部撤掉,然后重新把域名直接解析到服务器了,晕🫠,真是折腾。其实我进行这一通操作的两个域名之前已经备案过,所以才能完成CDN加速,后来试了下给没有备案过的域名进行CDN加速,会提示无备案,无法进行后续操作。

哎,我是想不备案建站又能访问快(备案号太丑不想加),所以折腾了这么多。如果不撤掉CDN,最终还是要在网页加备案号的(我猜是,但没有查到明确答案),出于遵纪守法的原则,还是撤掉吧


那么这里还是记录一下CDN加速的实现过程吧,也是有意思的折腾经历,以后总是会用到的。

  1. 购买阿里云(或者其他服务商)提供的CDN流量服务,这些平台也都会给新用户免费试用。
  2. 到CDN管理控制台添加你想加速的域名,然后网站提示验证域名归属权。
    2 1
    (提示验证归属权)
    2 2
  3. 去到你的域名提供商的域名管理界面,按照提示添加TXT类型的解析并确认,回到CDN管理界面,很快就能验证通过。
    3
  4. 继续完善信息,业务类型按照你的资源来选。剩下一些无关紧要的配置如资源分组之类的随便填写。
    4
  5. 接着需要填写源站信息,我的话就是填写我前后端所部署的服务器IP。
    5
    (新增源站的信息填写界面)
    5 1
    并且因为我的网站开启了https,所以这里的端口按照提示我选择了443。 (🚨注意如果你的网站也开启了https,之后还有额外的重要的一步需要配置)
  6. 接下来的配置界面,我使用了默认的推荐设置,一键配置,一般情况下够用。
    6
  7. 最后提示添加CNAME解析,还是在刚刚添加TXT解析的地方,
    7
    (下面为添加完成后的样子,我加速的域名为gududu.fun,没有次级域名,所以主机记录就是@)
    7 1
  8. 在CDN控制台返回域名列表,可以看到显示已经正常运行。(🚨注意,这里HTTPS显示未开启,现在登录网站还是无法访问的)
    8
  9. 在CDN管理后台,开启HTTPS,点击管理,进入HTTPS设置,点击修改配置添加SSL证书。
    9
  10. 我选择自定义上传,因为我的SSL证书是通过Let’s Encrypt (Certbot)签发的。这里的公钥和私钥分别对应Let’s Encrypt的ssl_certificate和ssl_certificate_key。
    10
  11. 我在我的Nginx设置里面找到这两个文件的位置,退出后使用cat命令输出并复制这两个密钥,分别粘贴进上面公钥和私钥区域。(🚨注意,cat命令输出了什么,需要全部复制粘贴,包括BEGIN CERTIFICATE 和 END CERTIFICATE区域)
    11
    (完成后的CDN后台页面)
    11 1
  12. 在你的终端里验证一下,输入如下命令:
    nslookup -type=CNAME gududu.fun
    输出的结果就是CDN提供商提供给你的DNS地址。
    12
    Ping一下康康,不出所料,快就完事了!
    13
    至此,你的网站已经使用CDN成功加速了,如果不是中国大陆地区,那么You’re totally free to go!
    但是我们老中,还是要老实地把你的备案标志加你的页面!泄特🤬!